1. Technical Field
The invention disclosed and claimed herein generally relates to a method and system for providing each node in a node cell, or configuration of nodes, with server state information pertaining to the servers in other nodes. More particularly, the invention pertains to a method of the above type wherein server event information is exchanged directly between servers of different nodes, by establishing a direct communication path between the two servers. Even more particularly, the invention pertains to a method of the above type wherein services in a first server are able to specify particular events in a second server, wherein the first server is to be notified whenever the specified events in the second server occur.
2. Description of Related Art
In an increasingly common arrangement comprising a node cell, or configuration of nodes, each node includes a node agent and one or more application servers. In configurations of this type it is generally necessary for respective nodes to be kept informed of the server states of other nodes. Application server states of interest respectively can include indications of whether a server (1) is starting, (2) has started, (3) is stopping, or (4) has stopped. If the nodes are not provided with server state information of this type on a current basis for other nodes, respective nodes will not be able to synchronize with one another. Accordingly, present node configurations are typically provided with a central node manager to which the individual nodes report their own server state information. Then, if a particular node desires state information pertaining to another node, the particular node will obtain such information directly from the node manager. Moreover, it may be desirable in a node configuration to apprise or inform a given node of certain state events, such as Java Management Extension (JMX) events, when they occur in a server of another node.
An illustration of a current node cell or node configuration is shown in FIG. 1. As depicted, FIG. 1 shows node configuration 100 having nodes 102 A-C and a node manager 104. Node manager 104 includes deployment manager 110, which oversees and manages node configuration 100. Each node 102 A-C is shown including node agents 106 A-C and application servers 108 A-C, respectively. Node agents 106 A-C generally serve as an intermediary between application servers 108 A-C, respectively, and deployment manager 110. Moreover, administrative logic running in node agents 106 A-C respectively keeps the configuration data of nodes 102 A-C synchronized with the configuration data of other nodes 102 A-C in node configuration 100. In general, node agents 106 A-C report state information, for the application servers 108 A-C that they respectively control, directly to deployment manager 110. For example, as the application servers 108 A-C on nodes 102 A-C change states, information indicating the changes will be communicated by node agents 106 A-C to deployment manager 100. Thereafter, if node agents 106 A-C respectively desire to obtain this state information, they will do so by directly communicating with deployment manager 100/node manager 104.
Notwithstanding its advantages, a node configuration of the type shown in FIG. 1 has a single point of failure. More particularly, if either node manager 104 or deployment manager 110 fails, there is no way for nodes 102 A-C to obtain needed server state information. As stated above, nodes 102 A-C will not be able to synchronize with one another, if the server state information is not available to them. Currently, efforts have been made to overcome this problem by linking the node agents of two different nodes together. However, with this solution, the node agent of each node would still remain as a potential single point of failure.